package main

// 布隆过滤器

// SaveToBloomFilter （布隆过滤器）将短链保存到布隆过滤器
func (r *urlMapRepo) SaveToBloomFilter(ctx context.Context, shortUrl string) error {
	// shortUrlBloomFilterKey 是这个布隆过滤器的名字
	// shortUrl是存储的值
	_, err := r.data.cache.BFAdd(ctx, shortUrlBloomFilterKey, shortUrl)
	if err != nil {
		return err
	}
	return nil
}

// FindShortUrlFormBloomFilter 从布隆过滤器中查询短链是否存在
func (r *urlMapRepo) FindShortUrlFormBloomFilter(ctx context.Context, shortUrl string) (bool, error) {
	exists, err := r.data.cache.BFExists(ctx, shortUrlBloomFilterKey, shortUrl)
	if err != nil {
		return false, err
	}
	return exists, nil
}
